/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package LogicaNegocio.Controlador;

import AccesoDatos.Persistencia.Manager.ManagerEmpleado;
import GUI.Jefe.AdminPerfil.PanelEditarPerfil;
import GUI.Jefe.FrameJefe;
import LogicaNegocio.Empleados.JefeBibliotecario;
import LogicaNegocio.Validacion.VEmpleado;
import MainBiblioSoft.BiblioSoft;
import javax.swing.JOptionPane;

/**
 * Esta clase en java permite editar el perfil del jefe bibliotecario.
 *
 * @author juansrs
 * Archivo: ControlEditarPerfilJefe.java
 * @version 1.0
 * Fecha: sáb may 15 19:55:07 COT 2010
 */


public class ControlEditarPerfilJefe {

    //Atributos de clase
    private PanelEditarPerfil panelEditarPerfil;
    private ManagerEmpleado gestorEmpleado;

    public ControlEditarPerfilJefe(PanelEditarPerfil panelEditarPerfil) {
        this.panelEditarPerfil = panelEditarPerfil;
        gestorEmpleado = new ManagerEmpleado();
        actualizar();
    }

    private void actualizar() {
        try {
            JefeBibliotecario jefe = new JefeBibliotecario();
            int numeroCedula = Integer.parseInt(panelEditarPerfil.textFieldCedula.getText());
            String passwordNuevo = new String(panelEditarPerfil.passFieldPassword.getPassword());
            String passwordConfirmacion = new String(panelEditarPerfil.passFieldConfirmar.getPassword());
            if (!passwordNuevo.equals(passwordConfirmacion) || passwordNuevo.equals("") || passwordConfirmacion.equals("")) {
                throw new Exception("La confirmacion del password no es correcta, confirme que la confirmacion sea igual al password");
            }
            jefe = gestorEmpleado.obtenerJefeBibliotecario(numeroCedula);
            jefe.setDireccion(panelEditarPerfil.textFieldDireccion.getText());
            jefe.setPassword(passwordNuevo);
            jefe.setPrimerApellido(panelEditarPerfil.textFieldPrimerApellido.getText());
            jefe.setPrimerNombre(panelEditarPerfil.textFieldPrimerNombre.getText());
            jefe.setSegundoApellido(panelEditarPerfil.textFieldSegundoApellido.getText());
            jefe.setSegundoNombre(panelEditarPerfil.textFieldSegundoNombre.getText());
            jefe.setTelefono(panelEditarPerfil.textFieldTelefono.getText());
            jefe.setUniversidad(panelEditarPerfil.textFieldUniversidad.getText());
            new VEmpleado(jefe);
            gestorEmpleado.actualizarEmpleado(numeroCedula, jefe);
            BiblioSoft.jefeBibliotecario = jefe;
            String primerNombre = BiblioSoft.jefeBibliotecario.getPrimerNombre();
            String primerApellido = BiblioSoft.jefeBibliotecario.getPrimerApellido();
            String segundoNombre = BiblioSoft.jefeBibliotecario.getSegundoNombre();
            String segundoApellido = BiblioSoft.jefeBibliotecario.getSegundoApellido();
            FrameJefe.labelInfoJefe.setText("Jefe Bibliotecario: "+primerNombre+" "+segundoNombre+" "+primerApellido+" "+segundoApellido);
            JOptionPane.showMessageDialog(panelEditarPerfil, "El Perfil ha sido actualizado con exito", "Actualizar Perfil", JOptionPane.PLAIN_MESSAGE);
        } catch (VEmpleado ex) {
            JOptionPane.showMessageDialog(panelEditarPerfil, ex.getMessage(), "Error Datos", JOptionPane.PLAIN_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(panelEditarPerfil, ex.getMessage(), "Error Actualizacion", JOptionPane.INFORMATION_MESSAGE);
        }
    }
}
